home *** CD-ROM | disk | FTP | other *** search
/ Interactive Media Design Review 1999 / Interactive Media Design Review 1999.iso / pc / Demos / Herois / Codigo.Cst / 00048_Script_DB Tools < prev    next >
Text File  |  1999-03-19  |  6KB  |  218 lines

  1. on fazDB
  2.   v12DB
  3.   importaDB
  4. end
  5.  
  6. on importaDB
  7.   put "Importando arquivos ..."
  8.   importaArquivos
  9.   put "Importando palavras ..."
  10.   importaPalavras
  11.   put "Importando referencias ..."
  12.   importaReferencias
  13. end 
  14.  
  15. on v12DB
  16.   fechaDB
  17.   set f = new(xtra "fileio")
  18.   openFile(f,the moviePath & "search.v12", 2)
  19.   delete(f)
  20.   closeFile(f)
  21.   set f = 0
  22.   put "Criando banco de dados ..."
  23.   criaDB
  24. end
  25.  
  26. on criaDB 
  27.   Set ClassDbe = Xtra "V12Dbe"
  28.   set dbObj = new(ClassDbe,the moviePath & "search.v12","Create","no")
  29.   if NOT objectP(dbObj) then
  30.     Alert("Cannot create database: search.v12")
  31.     exit
  32.   end if
  33.   mCreateTable(dbObj,"palavras" )
  34.   mCreateField(dbObj,"palavras","palNum","Integer")
  35.   mCreateField(dbObj,"palavras","palavra","String",48)
  36.   mCreateField(dbObj,"palavras","canonica", "String", 48)
  37.   mCreateIndex(dbObj,"palavras","palNdx","U","canonica","A")
  38.   
  39.   mCreateTable(dbObj,"arquivos" )
  40.   mCreateField(dbObj,"arquivos","arqNum","Integer")
  41.   mCreateField(dbObj,"arquivos","arquivo","String",224)
  42.   mCreateIndex(dbObj,"arquivos","arqNdx","duplicate","arqNum","A")
  43.   mCreateIndex(dbObj,"arquivos","alfaNdx","D","arquivo","A")
  44.   
  45.   mCreateTable(dbObj,"referencias" )
  46.   mCreateField(dbObj,"referencias","palNum","Integer")
  47.   mCreateField(dbObj,"referencias","mediaNum", "Integer")
  48.   mCreateField(dbObj,"referencias","arqNum","Integer")
  49.   mCreateIndex(dbObj,"referencias","refNdx","D","palNum","A")
  50.   mBuild(dbObj)
  51.   set dbObj = 0
  52.   set ClassDbe = 0
  53. end
  54.  
  55. on abreDB
  56.   global V12dbeFact, V12tblFact
  57.   global gDB, gPals, gRefs, gArqs
  58.   set gDB = new(V12dbeFact, the moviePath & "search.v12", "ReadOnly", "no")
  59.   set gPals = new(V12tblFact, mGetRef(gDB), "palavras")
  60.   set gArqs = new(V12tblFact, mGetRef(gDB), "arquivos")
  61.   set gRefs = new(V12tblFact, mGetRef(gDB), "referencias")
  62. end
  63.  
  64. on fechaDB
  65.   global gDB, gPals, gRefs, gArqs
  66.   set gDB = 0
  67.   set gPals = 0
  68.   set gRefs = 0
  69.   set gArqs = 0
  70. end
  71.  
  72. on leAteFimDeLinha arq
  73.   set pal to ""
  74.   
  75.   -- Tira espaco inicial
  76.   set c to numToChar(10)
  77.   repeat while c = numToChar(10)
  78.     put readChar(arq) into c
  79.   end repeat
  80.   
  81.   -- Pega palavra
  82.   repeat while c <> numToChar(10) and c <> numToChar(0)
  83.     put pal & c into pal
  84.     put readChar(arq) into c
  85.   end repeat
  86.   
  87.   return pal
  88.   --  put readLine(arq) into pal
  89.   --  put char 1 to length(pal)-1 of pal into pal
  90.   --  return pal
  91.   
  92. end
  93.  
  94. on importaPalavras
  95.   Set ClassDbe = Xtra "V12Dbe"
  96.   set dbObj = new(ClassDbe,the moviePath & "search.v12","ReadWrite","no")
  97.   if NOT objectP(dbObj) then
  98.     Alert("Cannot open database: search.v12")
  99.     exit
  100.   end if
  101.   set ClassTable = Xtra "V12Table"
  102.   set tbl = new(ClassTable,mGetRef(dbObj),"palavras")
  103.   set f = new(xtra "fileio")      -- Create an instance of FileIO
  104.   openFile(f, the moviePath & "Convertidos/palavras.txt", 1)  -- Open the file
  105.   set fLen = getLength(f)
  106.   set counter = 0
  107.   
  108.   repeat while ( getPosition(f) < fLen-2)
  109.     -- Le registro
  110.     set num = leAteFimDeLinha(f)
  111.     set pal = leAteFimDeLinha(f)
  112.     set can = leAteFimDeLinha(f)
  113.     
  114.     if rollOver(4) then put can & " " & pal & " " & num
  115.     -- Guarda no banco de dados
  116.     mAddRecord(tbl)
  117.     mSetField(tbl,"canonica", can)
  118.     mSetField(tbl,"palavra", pal)
  119.     mSetField(tbl,"palNum", num)
  120.     mUpdateRecord(tbl)
  121.     
  122.     -- Incrementa contador
  123.     set counter = counter + 1
  124.     if counter mod 1000 = 0 then put counter & " " & "registros"
  125.   end repeat
  126.   put "Palavras " & counter
  127.   
  128.   mGoFirst(tbl)
  129.   mSelect(tbl)
  130.   put "Palavras total: " & mSelectCount(tbl)
  131.   
  132.   closeFile(f)
  133.   set f = 0
  134.   set tbl = 0
  135.   set dbObj = 0
  136.   set ClassDbe = 0
  137. end
  138.  
  139. on importaArquivos
  140.   put "  Arquivos: abrindo banco de dados"
  141.   Set ClassDbe = Xtra "V12Dbe"
  142.   set dbObj = new(ClassDbe,the moviePath & "search.v12","ReadWrite","no")
  143.   if NOT objectP(dbObj) then
  144.     Alert("Cannot open database: search.v12")
  145.     exit
  146.   end if
  147.   set ClassTable = Xtra "V12Table"
  148.   set tbl = new(ClassTable,mGetRef(dbObj),"arquivos")
  149.   put "  Arquivos: removendo registros antigos"
  150.   mSelectAll(tbl)
  151.   mSelDelete(tbl)
  152.   put "  Arquivos: abrindo arquivo de entrada"
  153.   set f = new(xtra "fileIO")
  154.   openFile(f, the moviePath & "Convertidos/arquivos.txt",1)
  155.   
  156.   set fLen = getLength(f)
  157.   set counter = 0
  158.   repeat while (getPosition(f) < fLen-2)
  159.     set num to leAteFimDeLinha(f)
  160.     set arq to leAteFimDeLinha(f)
  161.     mAddRecord(tbl)
  162.     mSetField(tbl,"arquivo", arq)
  163.     mSetField(tbl,"arqNum", num)
  164.     mUpdateRecord(tbl)
  165.     set counter = counter + 1
  166.   end repeat
  167.   put "Arquivos " & counter
  168.   
  169.   mGoFirst(tbl)
  170.   mSelectAll(tbl)
  171.   put "Arquivos total: " & mSelectCount(tbl)
  172.   
  173.   closeFile(f)
  174.   set f = 0
  175.   set tbl = 0
  176.   set dbObj = 0
  177.   set ClassDbe = 0
  178. end
  179.  
  180. on importaReferencias
  181.   Set ClassDbe = Xtra "V12Dbe"
  182.   set dbObj = new(ClassDbe,the moviePath & "search.v12","ReadWrite","no")
  183.   if NOT objectP(dbObj) then
  184.     Alert("Cannot open database: search.v12")
  185.     exit
  186.   end if
  187.   set ClassTable = Xtra "V12Table"
  188.   set tbl = new(ClassTable,mGetRef(dbObj),"referencias")
  189.   set f = new( xtra "fileio")
  190.   openFile(f,the moviePath & "Convertidos/referen.txt", 1)
  191.   set fLen = getLength(f)
  192.   
  193.   set counter = 0
  194.   repeat while getPosition(f) < fLen-2
  195.     set pal to leAteFimDeLinha(f)
  196.     set arq to leAteFimDeLinha(f)
  197.     set media to leAteFimDeLinha(f)
  198.     mAddRecord(tbl)
  199.     mSetField(tbl,"palNum", pal)
  200.     mSetField(tbl,"arqNum", arq)
  201.     mSetField(tbl,"mediaNum", media)
  202.     mUpdateRecord(tbl)
  203.     set counter = counter + 1
  204.     if counter mod 1000 = 0 then put counter & " registros"
  205.   end repeat
  206.   put "Referencias " & counter
  207.   
  208.   mGoFirst(tbl)
  209.   mSelect(tbl)
  210.   put "Referencias total: " & mSelectCount(tbl)
  211.   
  212.   closeFile(f)
  213.   set f = 0
  214.   set tbl = 0
  215.   set dbObj = 0
  216.   set ClassDbe = 0
  217. end
  218.